home *** CD-ROM | disk | FTP | other *** search
-
-
-
- - 1 -
-
-
-
- 1. _P_a_t_c_h__S_G_0_0_0_2_7_1_5__R_e_l_e_a_s_e__N_o_t_e
-
- This release note describes patch SG0002715 to IRIX 6.2,
- IRIX 6.3 and IRIX 6.4.
-
- 1.1 _S_u_p_p_o_r_t_e_d__H_a_r_d_w_a_r_e__P_l_a_t_f_o_r_m_s
-
- This patch contains bug fixes for all hardware platforms
- running IRIX6.2, IRIX6.3, or IRIX6.4.
-
-
- 1.2 _S_u_p_p_o_r_t_e_d__S_o_f_t_w_a_r_e__P_l_a_t_f_o_r_m_s
-
- This patch contains bug fixes to rld and rld.debug (all 3
- ABIs) on a system running IRIX6.2, IRIX6.3, or IRIX6.4. It
- also contains bug fixes to rqs, rqsall and related
- utilities. The patch is appropriate for systems with
- compiler_eoe from MIPSpro7.2 or earlier installed (on any of
- the applicable IRIX versions).
-
- This patch replaces patches 1266, 1270, 1336, 1384, 1584,
- 1681, 1932, 2044, 2261 and 2458.
-
- The software cannot be installed on other configurations.
- In particular, this patch will not install on systems with
- compiler_eoe from MIPSpro7.2.1. The MR images of the 7.2.1
- compilers will include versions of rld, rqs, and rqsall
- containing all of these bug fixes.
-
-
- 1.3 _B_u_g_s__F_i_x_e_d__b_y__P_a_t_c_h__S_G_0_0_0_2_7_1_5
-
- This patch contains fixes for the following bugs in IRIX
- 6.2, IRIX 6.3 and IRIX 6.4. Bug numbers from Silicon
- Graphics bug tracking system are included for reference.
-
- +o This patch provides rld and rqs binaries which are
- required to run code compiled with the 7.2.1 linker
- multigot feature (Bug #546958). This patch should be
- installed if patch 2715 or one of its successor patches
- is present.
-
- +o Rld fails to handle multigot shared objects that are
- relocated (Bug #534245)
-
- +o Rqs fails to handle multigot shared objects that are
- relocated. This is the same as bug number 534245 in
- rld (Bug #536186).
-
- +o Rld could hang when outputting error messages or
- warnings in multithreaded programs. Whether a hang
-
-
-
-
-
-
-
-
-
-
-
- - 2 -
-
-
-
- actually occurred would depend upon the timing of
- events and rld processing requirements (Bug #520846).
-
- +o Cosmoplayer (the VRML display software) was unable to
- load most worlds due to incorrect symbol preemption in
- DSOs containing symlib tables. The problem could
- affect other applications as well (Bug #523673).
-
- +o Rld could, under some circumstances, unnecessarily
- reprocess conflict symbols. This conflict resolution
- could be time-consuming for apps dlopening libraries
- containing many conflict symbols at startup (Bug
- #554894)
-
- +o Sgidlopen_version failed to return handles for
- versioned DSOs when version lookup required searching
- for DSOs whose filenames had been suffixed with the
- major version number (e.g., libfoo.so.2) This was a
- regression from the rld in the 7.1 compiler release
- (Bug #560586).
-
- +o At runtime, rld uses the timestamp of a dso as the key
- to determine if this is the actual dso against which we
- originally linked. It depends upon timestamps of dso's
- to be unique. It assumes there can never be two
- different dso's with the same soname and same
- timestamp. Rqsall (and rqs) run so fast that it is
- possible for two libraries with the same soname to get
- the same timestamp. [ex. rqs'ing mips3/libm.so and
- mips4/libm.so] Rqsall now assigns unique timestamps to
- libraries with the same soname. (Bug #538535)
-
- +o Rqsall has been updated to do a better job of assigning
- load addresses to DSOs. It now honors reasonable
- values of $start_address in the so_locations files (Bug
- #556199), computes library sizes accurately (Bug
- #561583), uses appropriate upper and lower address
- bounds for laying out o32, n32 and n64 libraries (Bug
- #566180). The -move option now provides a mechanism
- for forcing a full requickstart of the installed DSOs.
- New load addresses are assigned to each DSO, packing
- them as tightly as possible. (Bug #555509)
-
- The following bug fixes were originally provided in one or
- more of the patches replaced by this patch.
-
- +o A multigot DSO that moves at run time could coredump
- the application due to incorrect handling of
- relocations. (Bug #534245)
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 3 -
-
-
-
- +o This patch has a correction for a bug in
- LD_LIBRARY_PATH handling introduced in patch 2261 (2261
- was withdrawn and is not available because of the bug).
- (Bug #530749)
-
- +o If a circular DSO liblist dependency exists the
- dlopen() reference counting was wrong resulting in an
- extra reference being counted. This could mean that on
- dlclose() that the reference count did not decrement to
- 0 (ever) and that any -fini code would not be run on
- the affected DSO. Circular liblist dependencies (even
- indirect) are a bad thing and the order of execution of
- -init and -fini code is undefined. But at least now the
- reference count is correct. (Bug #527001)
-
- +o Delay-loading DSOs could be slow if there were a lot of
- DSOs. Now in many cases delay-loading is faster. (Bug
- #506076)
-
- +o The static size of rld's text is now significantly
- smaller than previous versions. (Bug #506166).
-
- +o Confusing messages about OEX flags (rarely seen) are
- now easier to understand. (Bug #507206)
-
- +o A completely useless warning about a DSO not being the
- right ABI (useless because rld simply keeps looking for
- the right DSO anyway) is now suppressed unless the
- environment variable _RLD_ARGS has the -v option. (Bug
- 503926)
-
- +o Previous patches fixing the problems noted below (such
- as 2044) could fail to replace a *.sw32 subsystem: that
- subsystem no longer exists (it did in patch 1584 for
- example) so leaving it behind was a mistake in patch
- 2044. The rld set here is identical to the rld set in
- patch 2044, but the installation 'replaces' rules have
- been adjusted to clean up the installation database on
- any IRIX 6.2 6.3 or 6.4 system this patch is installed
- on (the parts of that installation database that relate
- to rld).
-
- +o When running a setuid/setgid program rld could be
- tricked into creating a security hole. Now rld ignores
- the -log option of the _RLD_ARGS environment variable
- for setuid/setgid programs unless the real user is root
- (in addition, rld continues to ignore some environment
- variables when handling setuid/setgid programs run by
- non-root users to avoid security holes). (Bug #482870)
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 4 -
-
-
-
- +o When running a multigot DSO (a very very very unusual
- DSO) rld could coredump if the DSO was moved when
- loaded. (Bug #483964)
-
- +o rld could hang a pthreads process if one or more
- threads called fork(2) or if there were multiple
- threads on a single sproc process-id or if a thread
- moved from one process-id to another (in an sproc
- group). Whether a hang occurred depended on the timing
- of events and how the events happened to relate to rld
- processing. In addition, an annoying message about
- "GUARANTEE INIT" could be emitted by rld when the
- message was inappropriate (with certain
- processes/libraries using pthreads). (Bug #412725)
-
- +o rld could coredump if it thought it had allocated an
- internal table (the msym table) but in reality the
- compilation system had built it: writing to the
- compiler-system-built table is an error (it is in
- read-only memory) and unnecessary. (Bug #449282)
-
- +o If a program did a series of dlclose(3)s and sproc(2)s
- quickly enough and the timing was just right rld would
- hang, hanging the program. The program was killable,
- but the sproc-thread could not be continued and the
- program run was normally useless as a result of the
- hang. (Bug #433288)
-
- +o The runtime linker corrupts the user's data segment
- when long LD_LIBRARY_PATH is specified. It usually
- results in segmentation fault while running the user
- application. (Bug #337982)
-
- +o The runtime linker does not fix-up binaries with
- prefetch instructions correctly when the binaries are
- run on r8000 machines. This fix is only effective if
- one of the kernel rollup patches in the series
- beginning with patch 1722 is also installed (as of the
- writing of these release notes the latest kernel rollup
- patch is patch 2187, but be sure to check with with
- your patch provider about kernel rollup patches). The
- runtime linker may emit a message like "Cannot open
- <executable> to fix up prefetches" on attempting to run
- a binary with prefetches (such as a binary compiled for
- the R10000) on an R8000 CPU if one of the kernel
- patches is not installed. (Bug #352206)
-
- +o The runtime linker would core dump on pixified binaries
- if those binaries contain prefetch instructions. (Bug
- #383655)
-
-
-
-
-
-
-
-
-
-
-
-
- - 5 -
-
-
-
- +o The runtime linker loops when 2 delay-loaded libraries
- are linked into the same executable and the 2 libraries
- are inter-dependent on each other. Also, the
- performance of the libdl routines are not acceptable in
- big applications when hundreds of libraries are loaded
- using dlopen calls. (Bug #361758)
-
- +o Specifing LD_LIBRARY_PATH with more than approximately
- 500 characters causes rld to dump core. (Bug #337982)
-
- +o The runtime linker loops in dlsym call. (Bug #364118)
-
- +o The runtime linker loops when dlopen'ing libraries that
- have inter-dependencies. (Bug #290198)
-
- +o Initialized COMMON block variables have incorrect
- values. (Bug #387407)
-
- +o Dlopen(...,RTLD_NOW) does not report undefined symbols.
- (Bug #428927)
-
- +o rqs will sometimes write an incorrect value to the
- zero-th entry of the global-offset-table(GOT) of a C++
- shared object or executable.
-
- This resulted in segmentation fault when the executable
- or shared object containing the bad value is used. (Bug
- #366990).
-
- 1.4 _S_u_b_s_y_s_t_e_m_s__I_n_c_l_u_d_e_d__i_n__P_a_t_c_h__S_G_0_0_0_2_7_1_5
-
-
- This patch release includes these subsystems:
-
-
- +o patchSG0002715.compiler_eoe_sw.unix
-
- +o patchSG0002715.compiler_eoe_sw64.unix
-
- +o patchSG0002715.compiler_eoe_man.dso
-
- +o patchSG0002715.compiler_eoe_man.unix
-
- +o patchSG0002715.compiler_eoe.hdr.lib
-
- +o patchSG0002715.compiler_dev.hdr.lib
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 6 -
-
-
-
- 1.5 _I_n_s_t_a_l_l_a_t_i_o_n__I_n_s_t_r_u_c_t_i_o_n_s
-
- Because you want to install only the patches for problems
- you have encountered, patch software is not installed by
- default. After reading the descriptions of the bugs fixed
- in this patch (see Section 1.3), determine the patches that
- meet your specific needs.
-
- If, after reading Sections 1.1 and 1.2 of these release
- notes, you are unsure whether your hardware and software
- meet the requirements for installing a particular patch, run
- _i_n_s_t. The _i_n_s_t program does not allow you to install
- patches that are incompatible with your hardware or
- software.
-
- Patch software is installed like any other Silicon Graphics
- software product. Follow the instructions in your _S_o_f_t_w_a_r_e
- _I_n_s_t_a_l_l_a_t_i_o_n _A_d_m_i_n_i_s_t_r_a_t_o_r'_s _G_u_i_d_e to bring up the miniroot
- form of the software installation tools.
-
- Follow these steps to select a patch for installation:
-
- 1. At the Inst> prompt, type
-
- iiiinnnnssssttttaaaallllllll ppppaaaattttcccchhhhSSSSGGGG_x_x_x_x_x_x_x
-
- where _x_x_x_x_x_x_x is the patch number.
-
- 2. Initiate the installation sequence. Type
-
- IIIInnnnsssstttt>>>> ggggoooo
-
- 3. You may find that two patches have been marked as
- incompatible. (The installation tools reject an
- installation request if an incompatibility is
- detected.) If this occurs, you must deselect one of
- the patches.
-
- IIIInnnnsssstttt>>>> kkkkeeeeeeeepppp ppppaaaattttcccchhhhSSSSGGGG_x_x_x_x_x_x_x
-
- where _x_x_x_x_x_x_x is the patch number.
-
- 4. After completing the installation process, exit the
- _i_n_s_t program by typing
-
- IIIInnnnsssstttt>>>> qqqquuuuiiiitttt
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 7 -
-
-
-
- 1.6 _P_a_t_c_h__R_e_m_o_v_a_l__I_n_s_t_r_u_c_t_i_o_n_s
-
- To remove a patch, use the _v_e_r_s_i_o_n_s _r_e_m_o_v_e command as you
- would for any other software subsystem. The removal process
- reinstates the original version of software unless you have
- specifically removed the patch history from your system.
-
- vvvveeeerrrrssssiiiioooonnnnssss rrrreeeemmmmoooovvvveeee ppppaaaattttcccchhhhSSSSGGGG_x_x_x_x_x_x_x
-
- where _x_x_x_x_x_x_x is the patch number.
-
- To keep a patch but increase your disk space, use the
- _v_e_r_s_i_o_n_s _r_e_m_o_v_e_h_i_s_t command to remove the patch history.
-
- vvvveeeerrrrssssiiiioooonnnnssss rrrreeeemmmmoooovvvveeeehhhhiiiisssstttt ppppaaaattttcccchhhhSSSSGGGG_x_x_x_x_x_x_x
-
- where _x_x_x_x_x_x_x is the patch number.
-
- 1.7 _K_n_o_w_n__P_r_o_b_l_e_m_s
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-